/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package BL;

import BD.ProductoBD;
import BE.Producto;
import BE.Tipocliente;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author dennis
 */
public class ProductoBL {

    private ProductoBD objProductoBD;
    private List<Producto> arrProducto;

    public ProductoBL() {
        objProductoBD = new ProductoBD();
        arrProducto = new ArrayList<Producto>();
    }

    public List<Producto> getArrProducto() {
        return arrProducto;
    }


    public void  buscarProductosPedido(int idPedido)
    {
        arrProducto = objProductoBD.buscarListaProductoPedido(idPedido);

    }
    public void buscarListaProducto(Tipocliente objTipoClienteBE)
    {
        arrProducto = objProductoBD.buscarListaProducto(objTipoClienteBE);

    }

    public void buscarPrecioxLista(int srlIdLista)
    {
    objProductoBD.buscarPrecioxLista(arrProducto,srlIdLista);
    }
    public List<Integer> CantidadProductosPedido(int idPedido)
    {
        return objProductoBD.buscarCantidadesPedido(idPedido);
    }
     public List<Double> PrecioProductosPedido(int idPedido)
    {
        return objProductoBD.buscarPreciosPedido(idPedido);
    }

    public List<String> cargarProductoPedido(String strProductos, List<Producto> arrProductoTotal)
    {

        String [] arrLineaPedido = strProductos.split(",");

        List<String> arrCantidades = new ArrayList();

        int indice=0;
        int indCant=0;
        for(int i=0;i<arrProductoTotal.size();i++)
        {
            if(arrProductoTotal.get(i).getSrlIdproducto()==Integer.parseInt(arrLineaPedido[indice]))
            {
                arrProducto.add(arrProductoTotal.get(i));
                arrCantidades.add(arrLineaPedido[indice+1]);
                indCant++;
                indice=indice+3;
                if(indice>=arrLineaPedido.length)
                    {break;}
            }


        }
        return arrCantidades;
    }

    public List<String> cargarPrecio(String strProductos, List<Producto> arrProductoTotal)
    {

        String [] arrLineaPedido = strProductos.split(",");

        List<String> arrPrecio = new ArrayList();

        int indice=0;
        for(int i=0;i<arrProductoTotal.size();i++)
        {
            if(arrProductoTotal.get(i).getSrlIdproducto()==Integer.parseInt(arrLineaPedido[indice]))
            {
                arrPrecio.add(arrLineaPedido[indice+2]);
                indice=indice+3;
                if(indice>=arrLineaPedido.length)
                    {break;}
            }


        }
        return arrPrecio;
    }

    public List<String> ordenarProductos(String strProductos, List<Producto> arrProductoTotal)
    {

        String [] arrLineaPedido = strProductos.split(",");

        List<String> arrCantidades = new ArrayList();

        this.arrProducto= arrProductoTotal;

        int indice=0;
        int indCant=0;
        for(int i=0;i<arrProductoTotal.size();i++)
        {
            if((arrLineaPedido.length>0)&&(arrProductoTotal.get(i).getSrlIdproducto()==Integer.parseInt(arrLineaPedido[indice])))
            {
                arrProducto.add(indCant,arrProductoTotal.get(i));
                arrProducto.remove(i+1);
                arrCantidades.add(arrLineaPedido[indice+1]);
                indCant++;
                indice=indice+3;
                if(indice>=arrLineaPedido.length)
                    {break;}
            }


        }
        return arrCantidades;
    }

    public List<String> ordenarProductosCriterios(String strProductos, List<Producto> arrProductoTotal)
    {

        String [] arrLineaPedido = strProductos.split(",");

        List<String> arrCantidades = new ArrayList();

        int indice=0;
        for(int i=0;i<arrProductoTotal.size();i++)
        {
            if((arrLineaPedido.length>0)&&(arrProductoTotal.get(i).getSrlIdproducto()==Integer.parseInt(arrLineaPedido[indice])))
            {
                arrProducto.add(arrProductoTotal.get(i));
                arrProductoTotal.remove(i);
                arrCantidades.add(arrLineaPedido[indice+1]);
                indice=indice+3;
                i--;
                if(indice>=arrLineaPedido.length)
                    {break;}
            }


        }
        return arrCantidades;
    }

    public void integrarResultado(List<Producto> arrProducto)
    {
        if(this.arrProducto.size()==0)
        {
            this.arrProducto=arrProducto;
        }
        else
        {
            this.arrProducto.addAll(arrProducto);
        }
    }

    public void buscarStock(int intIdCliente)
    {
    objProductoBD.buscarStock(this.arrProducto,intIdCliente);
    }

}
